package array

import "reflect"

// Compact 创建一个新数组，包含原数组中所有的非0值元素。
func Compact(array []T) []T {
	var ret []T
	for _, t := range array {
		if !reflect.DeepEqual(reflect.ValueOf(t).Interface(), reflect.Zero(reflect.TypeOf(t)).Interface()) {
			ret = append(ret, t)
		}
	}
	return ret
}
